;=================================================
; generic functions sample
;

;=================================================
; :DOC:
; A generic function defines an abstract operation, specifying its name and a parameter list but no implementation. Here, for example, is how you might define a generic function, draw, that will be used to draw different kinds of shapes on the screen:
;
(defgeneric draw (shape)
 (:documentation "Draw the given shape on the screen.")
 )

;=================================================
; defining a concrete method
;
;(defmethod draw ((shape circle)) (format t "drawing circle~%"))
;(defmethod draw ((shape rect)) (format t "drawing rect~%"))

;=================================================
; test
;
(defun test ()
 ; 1
 
 )

;=================================================
; app entry point
;
(defun main ()

 (format t "generic functions sample~%=====~%")

 (test)

 (exit)
 )

;=================================================
; executes main
;
(main)
